Method And Apparatus For Setting and Controlling A Manipulator Process

ABSTRACT

According to a method according to the invention for designating and/or controlling a manipulator process for a manipulator configuration ( 1, 2, 3 ) having at least one manipulator, in particular, an industrial robot, wherein the manipulator process exhibits a given oriented manipulator track for the manipulator configuration, at least one action by the manipulator configuration can be designated, or shall be executed, respectively, in particular, differently, in relation to a reverse movement running counter to the oriented manipulator track, and/or a return movement running in the same direction as the oriented manipulator track.

The present invention relates to a method and a means for designating and/or controlling a manipulator process.

In the course of traveling along a manipulator track, frequently various actions are to be executed, depending on the position on the track. For example, a welding current is to be switched on or off in sections, an adhesive or paint nozzle is to opened or shut, or a clamp is to be opened or closed, in order to enable the passage of a tool guided by the manipulator.

For this it is known in the field to provide a switching point, hereinafter referred to as a switching track-point, on the manipulator track by means of a switching point routine, which exhibits a sub-routine for executing the action, basically in the form of:

SLIN P

TRIGGER WHEN PATH=Abstand DELAY=Zeit DO Unterroutine [Abstand: spacing; Zeit: Time; Unterroutine: Subroutine]

SLIN Q

By means of this switching point routine, TRIGGER designates a switching track-point at a spacing Abstand from the endpoint Q of the section of the manipulator track between the track points P and Q, given as a Cartesian line by SLIN Q. Upon reaching the switching track-point designated in this manner, following (or, respectively, where Zeit<0, prior to) a time Zeit, the action designated by the subroutine Unterroutine is carried out, e.g. a welding current is implemented, or an adhesive or paint nozzle, or a clamp, is opened.

In the course of travelling along a given manipulator track it may be necessary to return along a section, for example after detecting a disturbance in the procedure. Disadvantageously, with a return movement of this type the switching point routines specified above are not executed. If, for example, a clamp must be opened in order to enable the passage of a tool guided by the manipulator, then in the return movement this will not automatically be re-opened by the switching point routine, which is only configured for the forwards movement between points P and Q.

The objective of the present invention is to improve a manipulator process.

This objective shall be obtained by means of a method having the properties of Claim 1. Claim 7 claims protection for a means of executing a method of this type. The dependent Claims relate to advantageous further developments.

One aspect of the present invention relates to a manipulator process for a manipulator configuration having one or more manipulators, in particular industrial robots. The manipulator process exhibits a given, oriented manipulator track of the manipulator configuration. A manipulator track is understood in the present case to mean, in particular, a discreet or continuous series of positions, in particular, locations and/or orientations, of one or more reference points permanently assigned to the manipulators, in particular a TCP of a manipulator, and/or poses, in particular joint coordinates, of one or more manipulators. The manipulator track can be designated, in particular, by means of the providing of discreet, in particular, taught track points and the provision of a track between said track points, such as a straight line or an arc segment, in the workspace or configuration space, or by means of the provision of a mapping or relation, such as a spline function, for example, in the workspace or configuration space. An oriented manipulator track is understood in the present case to mean, in particular, a manipulator track having a given sense of direction or concept for a passage, which can be designated, for example, by means of a series of points that are to be travelled to and/or passed.

For this manipulator process, or the manipulator track thereof, respectively, according to one aspect of the present invention, one or more actions can be designated and/or executed by means of this manipulator process, or, respectively, by means of travelling the course of its manipulator track. An action, as set forth in the present invention, can, in particular, be a logical and/or arithmetic computation and/or storage operation, in particular for the assignment of a variable, and/or a controlling of the manipulator configuration, in particular, comprising one or more tools controlled by the manipulator and/or permanently located in the surrounding environment, and/or process means, in particular. An action as set forth in the present invention can, for example, be a value assignment of a qualifier, the supplying of a current to a welding tongs guided by the manipulator, or the closing of a clamp permanently located in the surrounding environment.

One or more of these actions by the manipulator configuration can be designated and/or executed in relation to a reverse movement, initiated by an event, running counter to the oriented manipulator track, and/or a return movement running in the same direction as the oriented manipulator track. A movement initiated by an event is understood in the present case, in particular, as a movement of the manipulator configuration that is initiated, or executed, due to an external, in particular, not designated, and/or irregular, event. In one design, an event initiated reverse movement can be introduced by means of a manual input on the part of an operator, by means of actuating a reverse travel button, and/or by means of a signal, in particular an error signal, due to the actuation of an emergency stop, a deviation from the manipulator track, an erroneous value for the welding current in the case of an interrupted supply of the inert gas, or suchlike. In one design, an event initiated movement is characterized in that it is not always introduced in the course of each travelling of the given manipulator track at the same track point, and/or is dependent on other limiting conditions, not associated with the manipulator track.

A reverse movement running counter-clockwise is understood in the present case, in particular, as a movement of the manipulator configuration, in particular of one or more manipulators, which—at least in sections—occurs counter to the passage direction of the oriented manipulator track. The reverse movement can, in particular, exhibit a starting point lying on the manipulator track, i.e. starting from the manipulator track, and in reference to this starting point, on a local basis, runs in a direction counter to the manipulator track. The reverse movement can exhibit a section that is parallel to the manipulator track. A parallel section is understood to be, in the present case, in particular, a congruent section in the workspace or configuration space, such as, for example, a parallel line, a concentric arc segment, or suchlike. In particular, the parallel section can also be identical to a section of the manipulator track, which is to be travelled in the opposite direction, i.e. the reverse movement—at least in sections—occurs on the manipulator track. Likewise, the reverse movement can exhibit a section leading away from the manipulator track, to which, in particular, a parallel section can be connected, such that the manipulator track is travelled, in the case of the reverse movement, in sections with an offset or placement area, in the opposite direction.

A return movement running in the same direction, in the present case, is understood, in particular, to be a movement of the manipulator configuration, in particular, having one or more manipulators, which occurs—at least in sections—in the same direction of travel as the oriented manipulator track. The same directional return movement can occur, in one design, following a counter-directional reverse movement, in particular during or after a pause, and/or it can exhibit an endpoint lying on the manipulator track, and in reference to which the return movement can, on a local basis, be in the same direction as the manipulator track. The endpoint, or the projection thereof, can be identical to the starting point of a previous reverse movement, or the projection thereof, respectively, or—in the travel direction of the manipulator track—it can lie up or downstream thereof. In one design, the given manipulator track is then travelled on again, following an event initiated travel of the reverse and return movement, starting at the endpoint thereof.

The return movement can likewise exhibit a section parallel to the manipulator track, in particular, it can be identical to a section—which is to be travelled again in the same direction —of the manipulator track, i.e. the return movement can—at least in sections—occur on the manipulator track. Likewise, the return movement can exhibit a section leading back to the manipulator track, in particular, in order to compensate for an offset, or a placement area, respectively, of a previous reverse movement.

One or more actions can be designated or executed in relation to the reverse movement. In particular, it can be provided that one or more actions are executed selectively, in particular, also, or only, during the reverse movement. As such, a clamp, for example, which has been closed following the passage of a tool guided by the manipulator, in the course of travelling the given manipulator track, is re-opened.

Additionally, or alternatively, one or more actions can be designated or executed, respectively, in relation to the return movement. In particular, it can be provided that one or more actions, are executed selectively, in particular, also, or only, in the course of the return movement. As such, a clamp, for example, which has been re-opened in the course of a reverse movement, can be re-closed after passing through a tool guided by the manipulator.

One or more actions can be designated or executed, respectively, in particular during or after completion of a reverse movement and/or a return movement. For example, it may be useful to re-execute actions, which are executed at the start of the manipulator process, such as an optical or acoustic warning, a rinsing, a temperature control, etc. upon completion of the reverse movement and/or the return movement. Likewise, one or more actions can also be executed during the reverse or return movement, in particular, depending on the position of the manipulator configuration in relation to the given manipulator track.

One or more actions can be designated or executed, respectively, in one design, in different manners, depending on the reverse movement and/or the return movement. In the present case, this is understood to mean, in particular, that an action—for example, the assignment of a value to a variable, or the opening of a clamp—can be designated for a reverse movement, or, respectively, can be executed in the course of a reverse movement, and a different action—for example, the assignment of another value to the variables or the closing of a clamp—can be designated for a return movement, or, respectively, executed in the course of a return movement. Additionally, or alternatively, the same, or a different action thereof—for example, the assignment of another value to the variables—can be designated for the travelling of the given manipulator track, or, respectively, can be executed in the course of travelling the given manipulator track. In general, it is provided thereby that the actions for the traveling of the given manipulator track according to plan can be designated in different manners to the event initiated execution of a reverse movement and/or a return movement, in particular, following said reverse movement, or, respectively, executed selectively. An action can, in particular, also be executed in different manners as a result of its being selectively executed or not executed.

As was explained at the beginning, the providing of one or more switching track-points for a manipulator track is known in the field for the triggering of a given action in the normal travelling of the manipulator track, in relation to said switching track-points, in particular, upon reaching, or passing, said points, such as, for example, the opening of a clamp, providing current to a welding tongs guided by the manipulator, or suchlike.

According to one design of the present invention, switching track-points of this type are then also used for designating or executing an action in relation to the reverse movement and/or the return movement, in particular, selectively or differently, respectively. The action, in particular, can thus be designated, or executed, respectively, in relation to the reverse movement and/or the return movement, and in relation to a switching track-point.

In a further development, the action can be designated or executed, respectively, in relation to a projected spacing of the manipulator configuration to a switching track-point in the course of the reverse movement and/or the return movement, in particular, in different manners. In the course of travelling along the given manipulator track, a point characterizing the position of the manipulator configuration, for example the TCP in the workspace, or a vector of the joint coordinates in the configuration space, moves to the manipulator track designated in this space. With a reverse, or return movement, respectively, this point moves accordingly in the workspace or configuration space, respectively, at a placement area outside of the manipulator track. This point can be projected onto the manipulator track, in particular, parallel to a norm on the manipulator track, or the reverse, or return, movement, respectively. Likewise, the switching track-point can conversely be projected onto the reverse, or return, movement, respectively, in particular if said projection, in one design of the present invention —at least in sections—occurs automatically, and is thus designated, for example, parallel to a section of the manipulator track. The projected point can also be offset in relation to the perpendicular projection onto the manipulator movement track, or the reverse or return movement track, respectively, in the direction, or counter to the direction of passage, in particular prior to, or following, an actual movement. A projected spacing of the manipulator configuration is understood in the present case, in particular, to mean the spacing of a point characterizing the position of the manipulator configuration, projected onto the manipulator track, to the switching track-point, or the spacing of a point characterizing the position of the manipulator configuration to the switching track-point projected onto the reverse, or return movement (track), respectively. The action can then be executed, in particular, when the projected spacing falls below a threshold value, in particular, approaches zero, particularly if a point, characterizing the position of the manipulator configuration, projected onto the manipulator track, reaches, or passes, a switching track-point. Figuratively, the projected point can be regarded as a point on the manipulator track, which moves on the manipulator track in accordance with a reverse or return movement. If the reverse or return movement—at least in sections—occurs on the manipulator track, then the projection can be an identity.

Additionally, or alternatively, to one, in particular, different execution of the action, upon reaching, or passing, a switching track-point assigned to this action, through a point projected onto the manipulator track characterizing the position of the manipulator configuration, an action can also occur upon completion of a reverse or return movement, in relation thereto, regardless of whether the projected spacing of the manipulator configuration to said switching track-point is positive or negative. In this manner, actions, in particular, the switching track-points of which have already been passed in the course of travelling over a section of the manipulator track, can be selectively executed again, in particular, also when they are not projected to pass over said point in the course of the reverse or return movement.

As explained in the introduction, it is known in the field to designate a switching track-point by means of a switching point routine, which exhibits a subroutine for executing the action, in the form of:

... SLIN P TRIGGER WHEN PATH=Abstand DO Unterroutine [Abstand: spacing; Unterroutine: subroutine] SLIN Q ...

In a preferred design, the functionality of the switching point routine is expanded such that said routine is designated, or executed, respectively, in particular, differently in relation to the reverse movement and/or return movement, for example, in the form:

... SLIN P TRIGGER WHEN PATH=Abstand DO Unterroutine [FIRE_COND=Bewegung] [Bewegung: movement] SLIN Q ...

The preferably Boolean and/or fuzzy value Bewegung [: movement] can, in particular, be a system variable, which indicates which type of movement is currently to be executed. It can be determined by means of this variable, whether the switching point routine is executed, if the designated manipulator track is to be travelled (Bewegung=REGULAR), a reverse movement is executed (Bewegung=BACKWARD), a reverse movement is completed (Bewegung=RESTART), a return movement is executed (Bewegung=REPLAY) and/or a return movement is completed. Preferably, the switching point routine is executed by default only in the course of travelling the manipulator track, or is always executed by default.

Additionally, or alternatively, the functionality of the subroutine can be expanded such that said subroutine is designated, or executed, in particular, differently, in relation to the reverse movement and/or return movement, for example, in the form:

... SLIN P TRIGGER WHEN PATH=Abstand DO Unterroutine( ) [FIRE_COND=Bewegung] SLIN Q ... wherein, the movement context is evaluated in the subroutine:

DEF Unterroutine( ) ... SWITCH $TRIGGER_UP_CONTEXT CASE #REGULAR: RegularAction CASE #BACKWARD: BackwardAction CASE #RESTART: RestartAction CASE #REPLAY: ReplayAction ENDSWITCH ... END

The subroutine Unterroutine designated in the switching point routine executes an action in different manners, depending on the system variable $TRIGGER_UP_CONTEXT=Bewegung. For this, the subroutine can refer back to the system variable, or transfer said system variable thereto, in the form of a subroutine (Bewegung).

If, thus, in the current operation, for example, a given manipulator track is travelled on, the system variable Bewegung is assigned “REGULAR.” Accordingly, the trigger can be activated in the upper example, if this is indicated by “FIRE_COND=REGULAR.” In the lower example, the subroutine accesses this system variable Bewegung and, accordingly, executes (“CASE #REGULAR”) the action RegularAction, designated for this.

One aspect of the present invention relates to a method for designating a manipulator process. A designation is understood to be, in particular, a generation and/or modification, in particular, a parameterization, of a program for the manipulator configuration, by the use and parameterization of the expanded functionality explained above, of a switching point and/or its subroutine. Another aspect of the present invention relates to a method for controlling a manipulator process of this type. A controlling is understood to mean, in the present case, in particular, the transmission or implementation of movement and other control commands for the manipulator configuration and/or the actuation thereof, for example, a supplying of current to drives and/or tools, in particular, the execution of a program. Another aspect of the present invention relates to a means for designating and/or controlling a manipulator process of this type. A means, as set forth in the present invention, can, in particular, be designed in the form of software and/or hardware technology. In one design, this means comprises a program, a computer programming product, in particular a data medium having a program stored thereon, and/or a computer having an input/output means, in particular a keyboard, a display screen or similar item, a memory, and a processor or computing means. The means is, in particular, equipped to designate and/or control the manipulator process, and can, for this purpose, exhibit one or more commands, which, in particular, can be parameterized.

Further advantages and characteristics can be derived from the dependent Claims and the embodiment examples. For this, the single drawing shows, in part, schematically:

FIG. 1: a portion of a manipulator configuration in the course of executing a manipulator process, in accordance with one design of the present invention.

FIG. 1 shows a robot guided welding tongs electrode 1 and a robot control device 2 of a manipulator configuration according to one design of the present invention in a manipulator process in the form of a welding of a workpiece 4 held in place by a clamp 3, which, by means of a means, or according to a method, is designated, or will be executed, respectively, according to one design of the present invention. The robot control device 2 represents a means, as set forth in the present invention, for designating and controlling the manipulator processes of the manipulator configuration.

The manipulator track of the TCP, in this case, the tip of the welding tongs electrode 1, is shown in an expanded form. It is designated, for example, by means of the program command:

TRIGGER WHEN PATH=Abstand0 DO TEMP FIRE_COND=(TRUE, FALSE, FALSE, TRUE)

SLIN P

TRIGGER WHEN PATH=Abstand1 DO OPEN(FIRE_COND)

TRIGGER WHEN PATH=Abstand2 DO CLOSE(FIRE_COND)

SLIN Q

with the taught track points P, Q.

The value FIRE_COND exhibits four Boolean expressions:

FIRE_COND=(TRUE, FALSE, FALSE, FALSE) indicates a regular travelling of the designated manipulator track,

FIRE_COND=(FALSE, TRUE, FALSE, FALSE) indicates a reverse movement (line comprised of dashes in FIG. 1),

FIRE_COND=(FALSE, FALSE, TRUE, FALSE) indicates a return movement (line comprised of dashes and dots in FIG. 1), and

FIRE_COND=(FALSE, FALSE, FALSE, TRUE) indicates the completion of a reverse movement.

In a regular travelling of the designated manipulator track, in particular in the automatic mode, FIRE_COND=(TRUE, FALSE, FALSE, FALSE) is provided. If an event, such as an error signal, or the actuation of a reverse travel button, for example, initiates a reverse movement, the value is changed to FIRE_COND=(FALSE, TRUE, FALSE, FALSE). If the reverse movement is completed, because the reverse travel button is no longer actuated, or an automatic retraction is obtained as a result of the error signal, for example, the value is changed to FIRE_COND=(FALSE, FALSE, FALSE, TRUE). For the return movement, the value is changed to FIRE_COND=(FALSE, FALSE, TRUE, FALSE), and for the continuation of travel, is finally changed back to FIRE_COND=(TRUE, FALSE, FALSE, FALSE).

First, a regular travelling of the manipulator track shall be explained:

When the welding tongs electrode 1 reaches the first switching track-point S1, lying at Abstand0 [: Spacing0] from the point P, the subroutine TEMP is activated, because the switching point routine

TRIGGER WHEN PATH=Abstand0 DO TEMP FIRE_COND=(TRUE, FALSE, FALSE, TRUE)

is executed, if the first or the fourth expression in FIRE_COND is “TRUE”. This routine pre-tempers the workpiece 4.

When the welding tongs electrode 1 reaches the second switching track-point S2, lying at the Abstand1 [:Spacing1] from the point Q, the subroutine OPEN having the values FIRE_COND=(TRUE, FALSE, FALSE, FALSE) is activated. This subroutine opens the clamp 3, if the first or third Boolean expression is TRUE.

The welding tongs electrode 1 travels past the open clamp 3. When the welding tongs electrode 1 reaches the third switching track-point S3, lying at Abstand2 from the point Q, the subroutine CLOSE having the values FIRE_COND=(TRUE, FALSE, FALSE, FALSE) is activated. This subroutine closes the clamp 3, if the first or third Boolean expression is TRUE.

If an event initiates a reverse movement, then the welding tongs electrode 1 moves automatically, as indicated in FIG. 1 by the line comprised of dashes. Its vertical projection PR on the manipulator track (vertical in FIG. 1), indicated in FIG. 1 by a dotted line for a position of the manipulator configuration, or its welding tongs electrode 1 during the reverse movement, first travels over the third switching point S3 in the course of this reverse movement. The switching point routine assigned to it,

TRIGGER WHEN PATH=Abstand2 DO CLOSE(FIRE_COND)

activates thereby the subroutine CLOSE having the values FIRE_COND=(FALSE, TRUE, FALSE, FALSE). This then opens (due to the reverse movement) the clamp 3, i.e. executes a different action, in order to enable the passage of the welding tongs electrode 1.

Accordingly, the subroutine OPEN, activated with FIRE_COND=(FALSE, TRUE, FALSE, FALSE), then closes the clamp 3 after the passage of the welding tongs electrode 1, when its projection passes the second switching track-point S2, in order to again fix the workpiece 4 in place. For clarification, the projected spacing PA of the projection PR to the switching track-point S2 is indicated in FIG. 1: if this spacing is zero, the switching point routine is activated.

If the reverse movement is completed, the values are changed to FIRE_COND=(FALSE, FALSE, FALSE, TRUE). Because the first switching point Si lies in front of the projection of the welding tongs electrode 1, the switching point routine assigned to it is executed, i.e. a—intermediate, if applicable, according to the program, switched off—pre-tempering is again carried out.

At this point, the welding tongs electrode 1 travels automatically back to the manipulator track (indicated by a line comprised of dashes and dots in FIG. 1), and the values are changed to FIRE_COND=(FALSE, FALSE, TRUE, FALSE).

If the projection of the welding tongs electrode 1 passes over the second or third, respectively, switching points S2, or S3, respectively, on the manipulator track, then the switching point routines assigned thereto activates the subroutine OPEN or CLOSE, respectively, having the values FIRE_COND=(FALSE, FALSE, TRUE, FALSE), which in turn—as with a regular travelling of the manipulator track—opens, or closes, respectively, the clamp 3.

Subsequently, the manipulator track is again followed.

One can see that by means of the expansion of the functionality of the switching point routines, or, respectively, their subroutines, such that they are executed in relation to a reverse or a return movement, the manipulator processes can be designated or controlled, respectively, in a well-ordered and, in particular, automatic manner, even in the case of a deviation from a regular travelling of the manipulator track initiated by an event.

For this, it can be advantageous, particularly with simple subroutines, to activate, or execute, respectively, the switching point routines oneself in relation to the reverse and return movements, as is explained in an exemplary manner in the example of the switching point routine for the first switching point. Likewise, it may be advantageous to designate, or execute, respectively, the subroutines differently, in relation to the reverse and return movement, as is explained in an exemplary manner for the example of the switching point routine for the second and third switching points.

LIST OF REFERENCE SYMBOL

1 welding tongs electrode (manipulator configuration)

2 robot control device (manipulator configuration)

3 clamp (manipulator configuration)

4 workpiece

S1, S2, S3 switching track-points

P, Q taught track points

PA projected spacing

PR projection onto the manipulator track 

1. A method for designating and/or controlling a manipulator process for a manipulator configuration having at least one manipulator, in particular, an industrial robot, wherein the manipulator process exhibits a given oriented manipulator track for the manipulator configuration, characterized in that at least one action by the manipulator configuration can be designated, or is executed, respectively, in particular, differently, in relation to a reverse movement, initiated by an event, running counter to the direction of the oriented manipulator track, and/or a return movement, running in the same direction as the oriented manipulator track.
 2. The method according to claim 1, characterized in that the manipulator track exhibits at least one switching track-point, and the action can be designated, or shall be executed, in particular, differently, in relation to said switching track-point.
 3. The method according to claim 2, characterized in that the action can be designated, or executed, in particular, differently, in relation to a projected spacing of the manipulator configuration to said switching track-point for the reverse movement and/or the return movement.
 4. The method according to claim 1, characterized by a switching point routine, exhibiting a subroutine for executing the action, wherein the switching point routine or the subroutine can be designated or executed, in particular, differently, in relation to the reverse movement and/or the return movement.
 5. The method according to claim 1, characterized in that the reverse movement exhibits a starting point on the manipulator track, a section leading away from the manipulator track, and/or a section running parallel to the manipulator track.
 6. The method according to claim 1, characterized in that the return movement exhibits a section running parallel to the manipulator track, a section running back to the manipulator track, and/or an end point on the manipulator track.
 7. A means for designating and/or controlling a manipulator process for a manipulator configuration having at least one manipulator, in particular, an industrial robot, wherein the manipulator process exhibits a given oriented manipulator track for the manipulator configuration, characterized in that the means is equipped to designate, or to execute, respectively, in particular, differently, an action by the manipulator configuration in relation to a reverse movement, initiated by an event, running counter to the oriented manipulator track, and/or a return movement, running in the same direction as the oriented manipulator track.
 8. The means according to claim 7, characterized in that the manipulator track exhibits at least one switching track-point, and the action can be designated or shall be executed, respectively, in particular, differently, in relation to said switching track-point.
 9. The means according to claim 8, characterized in that the action can be designated, or shall be executed, respectively, in particular, differently, in relation to a projected spacing of the manipulator configuration to said switching track-point for the reverse movement and/or the return movement.
 10. The means according to claim 1, characterized by a switching point routine, exhibiting a subroutine for executing the action, wherein the switching point routine or the subroutine can be designated, or shall be executed, respectively, in particular, differently, in relation to the reverse movement and/or the return movement.
 11. The means according to claim 1, characterized in that the reverse movement exhibits a starting point on the manipulator track, a section leading away from the manipulator track, and/or a section running parallel to the manipulator track.
 12. The means according to claim 1, characterized in that the return movement exhibits a section running parallel to the manipulator track, a section leading back to the manipulator track, and/or an end point on the manipulator track. 